package com.ctshk.rpc.bus.service;

import java.util.List;

import com.ctshk.common.dto.Result;
import com.ctshk.common.model.PageResponse;
import com.ctshk.common.model.TokenUser;
import com.ctshk.common.req.MainTreeData;
import com.ctshk.common.req.OperationByIdReq;
import com.ctshk.common.req.OperationByLikeReq;
import com.ctshk.rpc.bus.dto.BusStopsDTO;
import com.ctshk.rpc.bus.req.BusStopsDictListQueryReq;
import com.ctshk.rpc.bus.req.BusStopsPassDictListQueryReq;
import com.ctshk.rpc.bus.req.BusStopsQueryReq;
import com.ctshk.rpc.bus.req.BusStopsSaveReq;

/**
 * <p>
 * 巴士站点表 服务类
 * </p>
 *
 * @author 彭柳霖
 * @since 2021-02-08
 */
public interface IBusStopsService{

    /**
     * 查询所有巴士站点列表
     * @return
     */
    List<BusStopsDTO> queyList();


    /**
     * 中港通API站点导入
     * @return
     * @throws Exception
     */
    Result importHktBusStop() throws Exception;


    /**
     * 中汽API站点导入
     * @return
     * @throws Exception
     */
    Result importRglBusStop() throws Exception;

    /**
     * 查询巴士站点列表
     */
    Result<PageResponse<BusStopsDTO>> queryStopsList(BusStopsQueryReq req);
    
    /**
     * 保存巴士站点
     */
    Result<Void> saveStops(BusStopsSaveReq req, TokenUser tokenUser);
    
    /**
     * 删除巴士站点
     */
    Result<Void> deleteStops(OperationByIdReq req, TokenUser tokenUser);
    
    /**
     * 启用/禁用巴士站点
     */
    Result<Void> changeStopsStatus(OperationByIdReq req, TokenUser tokenUser);
    
    /**
     * 查询巴士站点数据字典列表
     * @param req
     * @return
     */
    Result<PageResponse<MainTreeData>> queryStopsDictList(BusStopsDictListQueryReq req);
    
    /**
     * 查询巴士经停站站点数据字典列表
     * @param req
     * @return
     */
    Result<PageResponse<MainTreeData>> queryStopsPassDictList(BusStopsPassDictListQueryReq req);
    
    /**
     * 检索巴士城市列表
     * @param req
     * @return
     */
    Result<PageResponse<MainTreeData>> searchCityList(OperationByLikeReq req);
}
